{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1> Explore and create ML datasets </h1>\n",
    "\n",
    "In this notebook, we will explore data corresponding to taxi rides in New York City to build a Machine Learning model in support of a fare-estimation tool. The idea is to suggest a likely fare to taxi riders so that they are not surprised, and so that they can protest if the charge is much higher than expected.\n",
    "\n",
    "<div id=\"toc\"></div>\n",
    "\n",
    "Let's start off with the Python imports that we need."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from google.cloud import bigquery\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import shutil"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "$.getScript('https://kmahelona.github.io/ipython_notebook_goodies/ipython_notebook_toc.js')"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%javascript\n",
    "$.getScript('https://kmahelona.github.io/ipython_notebook_goodies/ipython_notebook_toc.js')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3> Extract sample data from BigQuery </h3>\n",
    "\n",
    "The dataset that we will use is <a href=\"https://bigquery.cloud.google.com/table/nyc-tlc:yellow.trips\">a BigQuery public dataset</a>. Click on the link, and look at the column names. Switch to the Details tab to verify that the number of records is one billion, and then switch to the Preview tab to look at a few rows.\n",
    "\n",
    "Let's write a SQL query to pick up interesting fields from the dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = \"\"\"\n",
    "  SELECT\n",
    "    pickup_datetime, pickup_longitude, pickup_latitude, dropoff_longitude,\n",
    "    dropoff_latitude, passenger_count, trip_distance, tolls_amount, \n",
    "    fare_amount, total_amount \n",
    "  FROM `nyc-tlc.yellow.trips`\n",
    "  LIMIT 10\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_datetime</th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>trip_distance</th>\n",
       "      <th>tolls_amount</th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>total_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2010-03-04 00:35:16+00:00</td>\n",
       "      <td>-74.035201</td>\n",
       "      <td>40.721548</td>\n",
       "      <td>-74.035201</td>\n",
       "      <td>40.721548</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2010-03-15 17:18:34+00:00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2015-03-18 01:07:02+00:00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2015-03-09 18:24:03+00:00</td>\n",
       "      <td>-73.937248</td>\n",
       "      <td>40.758202</td>\n",
       "      <td>-73.937263</td>\n",
       "      <td>40.758190</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2010-03-06 06:33:41+00:00</td>\n",
       "      <td>-73.785514</td>\n",
       "      <td>40.645400</td>\n",
       "      <td>-73.784564</td>\n",
       "      <td>40.648681</td>\n",
       "      <td>2</td>\n",
       "      <td>4.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2013-08-07 00:42:45+00:00</td>\n",
       "      <td>-74.025817</td>\n",
       "      <td>40.763044</td>\n",
       "      <td>-74.046752</td>\n",
       "      <td>40.783240</td>\n",
       "      <td>1</td>\n",
       "      <td>4.8</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2015-04-26 02:56:37+00:00</td>\n",
       "      <td>-73.987656</td>\n",
       "      <td>40.771656</td>\n",
       "      <td>-73.987556</td>\n",
       "      <td>40.771751</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2015-04-29 18:45:03+00:00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2010-03-11 21:24:48+00:00</td>\n",
       "      <td>-74.571511</td>\n",
       "      <td>40.910800</td>\n",
       "      <td>-74.628928</td>\n",
       "      <td>40.964321</td>\n",
       "      <td>1</td>\n",
       "      <td>68.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2013-08-24 01:58:23+00:00</td>\n",
       "      <td>-73.972171</td>\n",
       "      <td>40.759439</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            pickup_datetime  pickup_longitude  pickup_latitude  \\\n",
       "0 2010-03-04 00:35:16+00:00        -74.035201        40.721548   \n",
       "1 2010-03-15 17:18:34+00:00          0.000000         0.000000   \n",
       "2 2015-03-18 01:07:02+00:00          0.000000         0.000000   \n",
       "3 2015-03-09 18:24:03+00:00        -73.937248        40.758202   \n",
       "4 2010-03-06 06:33:41+00:00        -73.785514        40.645400   \n",
       "5 2013-08-07 00:42:45+00:00        -74.025817        40.763044   \n",
       "6 2015-04-26 02:56:37+00:00        -73.987656        40.771656   \n",
       "7 2015-04-29 18:45:03+00:00          0.000000         0.000000   \n",
       "8 2010-03-11 21:24:48+00:00        -74.571511        40.910800   \n",
       "9 2013-08-24 01:58:23+00:00        -73.972171        40.759439   \n",
       "\n",
       "   dropoff_longitude  dropoff_latitude  passenger_count  trip_distance  \\\n",
       "0         -74.035201         40.721548                1            0.0   \n",
       "1           0.000000          0.000000                1            0.0   \n",
       "2           0.000000          0.000000                5            0.0   \n",
       "3         -73.937263         40.758190                1            0.0   \n",
       "4         -73.784564         40.648681                2            4.1   \n",
       "5         -74.046752         40.783240                1            4.8   \n",
       "6         -73.987556         40.771751                1            0.0   \n",
       "7           0.000000          0.000000                1            1.0   \n",
       "8         -74.628928         40.964321                1           68.4   \n",
       "9           0.000000          0.000000                4            0.0   \n",
       "\n",
       "   tolls_amount  fare_amount  total_amount  \n",
       "0           0.0          0.0           0.0  \n",
       "1           0.0          0.0           0.0  \n",
       "2           0.0          0.0           0.0  \n",
       "3           0.0          0.0           0.0  \n",
       "4           0.0          0.0           0.0  \n",
       "5           0.0          0.0           0.0  \n",
       "6           0.0          0.0           0.0  \n",
       "7           0.0          0.0           0.0  \n",
       "8           0.0          0.0           0.0  \n",
       "9           0.0          0.0           0.0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "client = bigquery.Client()\n",
    "trips = client.query(sql).to_dataframe()\n",
    "trips"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's increase the number of records so that we can do some neat graphs.  There is no guarantee about the order in which records are returned, and so no guarantee about which records get returned if we simply increase the LIMIT. To properly sample the dataset, let's use the HASH of the pickup time and return 1 in 100,000 records -- because there are 1 billion records in the data, we should get back approximately 10,000 records if we do this."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = \"\"\"\n",
    "  SELECT\n",
    "    pickup_datetime,\n",
    "    pickup_longitude, pickup_latitude, \n",
    "    dropoff_longitude, dropoff_latitude,\n",
    "    passenger_count,\n",
    "    trip_distance,\n",
    "    tolls_amount,\n",
    "    fare_amount,\n",
    "    total_amount\n",
    "  FROM\n",
    "    `nyc-tlc.yellow.trips`\n",
    "  WHERE\n",
    "    MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))), 100000) = 1\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_datetime</th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>trip_distance</th>\n",
       "      <th>tolls_amount</th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>total_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2014-05-17 15:15:00+00:00</td>\n",
       "      <td>-73.999550</td>\n",
       "      <td>40.760600</td>\n",
       "      <td>-73.999650</td>\n",
       "      <td>40.725220</td>\n",
       "      <td>1</td>\n",
       "      <td>5.57</td>\n",
       "      <td>0.00</td>\n",
       "      <td>31.0</td>\n",
       "      <td>33.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2012-05-05 22:46:05+00:00</td>\n",
       "      <td>-74.009790</td>\n",
       "      <td>40.712483</td>\n",
       "      <td>-73.959293</td>\n",
       "      <td>40.768908</td>\n",
       "      <td>1</td>\n",
       "      <td>5.20</td>\n",
       "      <td>0.00</td>\n",
       "      <td>16.9</td>\n",
       "      <td>19.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2010-12-21 13:08:00+00:00</td>\n",
       "      <td>-73.982422</td>\n",
       "      <td>40.739847</td>\n",
       "      <td>-73.981658</td>\n",
       "      <td>40.768732</td>\n",
       "      <td>2</td>\n",
       "      <td>2.64</td>\n",
       "      <td>0.00</td>\n",
       "      <td>14.9</td>\n",
       "      <td>15.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2014-04-30 16:45:10+00:00</td>\n",
       "      <td>-73.989434</td>\n",
       "      <td>40.756601</td>\n",
       "      <td>-73.949989</td>\n",
       "      <td>40.826892</td>\n",
       "      <td>1</td>\n",
       "      <td>6.20</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.5</td>\n",
       "      <td>31.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2013-04-09 09:39:13+00:00</td>\n",
       "      <td>-73.981443</td>\n",
       "      <td>40.763466</td>\n",
       "      <td>-74.010072</td>\n",
       "      <td>40.704927</td>\n",
       "      <td>1</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.5</td>\n",
       "      <td>30.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2014-04-19 14:08:46+00:00</td>\n",
       "      <td>-73.964716</td>\n",
       "      <td>40.773071</td>\n",
       "      <td>-73.997511</td>\n",
       "      <td>40.697289</td>\n",
       "      <td>1</td>\n",
       "      <td>8.70</td>\n",
       "      <td>0.00</td>\n",
       "      <td>26.5</td>\n",
       "      <td>33.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2013-12-09 15:03:00+00:00</td>\n",
       "      <td>-73.990950</td>\n",
       "      <td>40.749772</td>\n",
       "      <td>-73.870807</td>\n",
       "      <td>40.774070</td>\n",
       "      <td>1</td>\n",
       "      <td>9.44</td>\n",
       "      <td>5.33</td>\n",
       "      <td>29.0</td>\n",
       "      <td>34.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2014-05-17 15:15:00+00:00</td>\n",
       "      <td>-73.991745</td>\n",
       "      <td>40.749897</td>\n",
       "      <td>-74.014913</td>\n",
       "      <td>40.709987</td>\n",
       "      <td>1</td>\n",
       "      <td>4.44</td>\n",
       "      <td>0.00</td>\n",
       "      <td>22.0</td>\n",
       "      <td>26.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2014-07-11 15:47:07+00:00</td>\n",
       "      <td>-73.975224</td>\n",
       "      <td>40.757659</td>\n",
       "      <td>-73.997157</td>\n",
       "      <td>40.714348</td>\n",
       "      <td>2</td>\n",
       "      <td>4.70</td>\n",
       "      <td>0.00</td>\n",
       "      <td>19.5</td>\n",
       "      <td>22.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2009-05-28 13:14:08+00:00</td>\n",
       "      <td>-73.978569</td>\n",
       "      <td>40.751850</td>\n",
       "      <td>-74.004371</td>\n",
       "      <td>40.710045</td>\n",
       "      <td>1</td>\n",
       "      <td>4.80</td>\n",
       "      <td>0.00</td>\n",
       "      <td>15.7</td>\n",
       "      <td>15.70</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            pickup_datetime  pickup_longitude  pickup_latitude  \\\n",
       "0 2014-05-17 15:15:00+00:00        -73.999550        40.760600   \n",
       "1 2012-05-05 22:46:05+00:00        -74.009790        40.712483   \n",
       "2 2010-12-21 13:08:00+00:00        -73.982422        40.739847   \n",
       "3 2014-04-30 16:45:10+00:00        -73.989434        40.756601   \n",
       "4 2013-04-09 09:39:13+00:00        -73.981443        40.763466   \n",
       "5 2014-04-19 14:08:46+00:00        -73.964716        40.773071   \n",
       "6 2013-12-09 15:03:00+00:00        -73.990950        40.749772   \n",
       "7 2014-05-17 15:15:00+00:00        -73.991745        40.749897   \n",
       "8 2014-07-11 15:47:07+00:00        -73.975224        40.757659   \n",
       "9 2009-05-28 13:14:08+00:00        -73.978569        40.751850   \n",
       "\n",
       "   dropoff_longitude  dropoff_latitude  passenger_count  trip_distance  \\\n",
       "0         -73.999650         40.725220                1           5.57   \n",
       "1         -73.959293         40.768908                1           5.20   \n",
       "2         -73.981658         40.768732                2           2.64   \n",
       "3         -73.949989         40.826892                1           6.20   \n",
       "4         -74.010072         40.704927                1           6.50   \n",
       "5         -73.997511         40.697289                1           8.70   \n",
       "6         -73.870807         40.774070                1           9.44   \n",
       "7         -74.014913         40.709987                1           4.44   \n",
       "8         -73.997157         40.714348                2           4.70   \n",
       "9         -74.004371         40.710045                1           4.80   \n",
       "\n",
       "   tolls_amount  fare_amount  total_amount  \n",
       "0          0.00         31.0         33.50  \n",
       "1          0.00         16.9         19.90  \n",
       "2          0.00         14.9         15.40  \n",
       "3          0.00         24.5         31.20  \n",
       "4          0.00         24.5         30.00  \n",
       "5          0.00         26.5         33.75  \n",
       "6          5.33         29.0         34.83  \n",
       "7          0.00         22.0         26.90  \n",
       "8          0.00         19.5         22.00  \n",
       "9          0.00         15.7         15.70  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trips = client.query(sql).to_dataframe()\n",
    "trips[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10789, 10)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trips.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3> Exploring data </h3>\n",
    "\n",
    "Let's explore this dataset and clean it up as necessary. We'll use the Python Seaborn package to visualize graphs and Pandas to do the slicing and filtering."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/envs/py3env/lib/python3.5/site-packages/matplotlib/font_manager.py:1320: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4e94249198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = sns.regplot(x=\"trip_distance\", y=\"fare_amount\", fit_reg=False, ci=None, truncate=True, data=trips)\n",
    "ax.figure.set_size_inches(10, 8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Hmm ... do you see something wrong with the data that needs addressing?\n",
    "\n",
    "It appears that we have a lot of invalid data that is being coded as zero distance and some fare amounts that are definitely illegitimate. Let's remove them from our analysis. We can do this by modifying the BigQuery query to keep only trips longer than zero miles and fare amounts that are at least the minimum cab fare ($2.50).\n",
    "\n",
    "Note the extra WHERE clauses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = \"\"\"\n",
    "  SELECT\n",
    "    pickup_datetime,\n",
    "    pickup_longitude, pickup_latitude, \n",
    "    dropoff_longitude, dropoff_latitude,\n",
    "    passenger_count,\n",
    "    trip_distance,\n",
    "    tolls_amount,\n",
    "    fare_amount,\n",
    "    total_amount\n",
    "  FROM\n",
    "    `nyc-tlc.yellow.trips`\n",
    "  WHERE\n",
    "    MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))), 100000) = 1\n",
    "    AND trip_distance > 0 AND fare_amount >= 2.5\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/envs/py3env/lib/python3.5/site-packages/matplotlib/font_manager.py:1320: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4e92bf1160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "trips = client.query(sql).to_dataframe()\n",
    "ax = sns.regplot(x=\"trip_distance\", y=\"fare_amount\", fit_reg=False, ci=None, truncate=True, data=trips)\n",
    "ax.figure.set_size_inches(10, 8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What's up with the streaks at \\$45 and \\$50?  Those are fixed-amount rides from JFK and La Guardia airports into anywhere in Manhattan, i.e. to be expected. Let's list the data to make sure the values look reasonable.\n",
    "\n",
    "Let's examine whether the toll amount is captured in the total amount."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_datetime</th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>trip_distance</th>\n",
       "      <th>tolls_amount</th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>total_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>302</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.950105</td>\n",
       "      <td>40.827105</td>\n",
       "      <td>-73.861490</td>\n",
       "      <td>40.768172</td>\n",
       "      <td>1</td>\n",
       "      <td>9.06</td>\n",
       "      <td>4.57</td>\n",
       "      <td>23.3</td>\n",
       "      <td>28.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.991303</td>\n",
       "      <td>40.749965</td>\n",
       "      <td>-73.714585</td>\n",
       "      <td>40.745767</td>\n",
       "      <td>2</td>\n",
       "      <td>18.68</td>\n",
       "      <td>4.57</td>\n",
       "      <td>47.3</td>\n",
       "      <td>61.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1219</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.865723</td>\n",
       "      <td>40.770543</td>\n",
       "      <td>-73.984790</td>\n",
       "      <td>40.758760</td>\n",
       "      <td>1</td>\n",
       "      <td>12.32</td>\n",
       "      <td>5.50</td>\n",
       "      <td>32.5</td>\n",
       "      <td>45.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1231</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.870928</td>\n",
       "      <td>40.773747</td>\n",
       "      <td>-73.983638</td>\n",
       "      <td>40.752948</td>\n",
       "      <td>1</td>\n",
       "      <td>8.63</td>\n",
       "      <td>4.57</td>\n",
       "      <td>25.7</td>\n",
       "      <td>30.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1290</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-74.008322</td>\n",
       "      <td>40.735337</td>\n",
       "      <td>-74.177383</td>\n",
       "      <td>40.695083</td>\n",
       "      <td>1</td>\n",
       "      <td>15.86</td>\n",
       "      <td>10.00</td>\n",
       "      <td>49.9</td>\n",
       "      <td>69.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1343</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.862715</td>\n",
       "      <td>40.768987</td>\n",
       "      <td>-74.007195</td>\n",
       "      <td>40.707480</td>\n",
       "      <td>1</td>\n",
       "      <td>13.17</td>\n",
       "      <td>4.57</td>\n",
       "      <td>32.9</td>\n",
       "      <td>44.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1451</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-74.006398</td>\n",
       "      <td>40.738450</td>\n",
       "      <td>-73.872652</td>\n",
       "      <td>40.774357</td>\n",
       "      <td>2</td>\n",
       "      <td>10.67</td>\n",
       "      <td>4.57</td>\n",
       "      <td>29.7</td>\n",
       "      <td>39.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1501</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.969748</td>\n",
       "      <td>40.759790</td>\n",
       "      <td>-73.872892</td>\n",
       "      <td>40.774297</td>\n",
       "      <td>1</td>\n",
       "      <td>10.15</td>\n",
       "      <td>4.57</td>\n",
       "      <td>24.5</td>\n",
       "      <td>29.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1584</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.870773</td>\n",
       "      <td>40.773753</td>\n",
       "      <td>-73.984963</td>\n",
       "      <td>40.757590</td>\n",
       "      <td>1</td>\n",
       "      <td>10.97</td>\n",
       "      <td>4.57</td>\n",
       "      <td>28.5</td>\n",
       "      <td>33.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6759</th>\n",
       "      <td>2010-04-29 12:28:00+00:00</td>\n",
       "      <td>-73.789942</td>\n",
       "      <td>40.646943</td>\n",
       "      <td>-73.974362</td>\n",
       "      <td>40.756418</td>\n",
       "      <td>2</td>\n",
       "      <td>16.84</td>\n",
       "      <td>4.57</td>\n",
       "      <td>45.0</td>\n",
       "      <td>50.07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               pickup_datetime  pickup_longitude  pickup_latitude  \\\n",
       "302  2010-04-29 12:28:00+00:00        -73.950105        40.827105   \n",
       "530  2010-04-29 12:28:00+00:00        -73.991303        40.749965   \n",
       "1219 2010-04-29 12:28:00+00:00        -73.865723        40.770543   \n",
       "1231 2010-04-29 12:28:00+00:00        -73.870928        40.773747   \n",
       "1290 2010-04-29 12:28:00+00:00        -74.008322        40.735337   \n",
       "1343 2010-04-29 12:28:00+00:00        -73.862715        40.768987   \n",
       "1451 2010-04-29 12:28:00+00:00        -74.006398        40.738450   \n",
       "1501 2010-04-29 12:28:00+00:00        -73.969748        40.759790   \n",
       "1584 2010-04-29 12:28:00+00:00        -73.870773        40.773753   \n",
       "6759 2010-04-29 12:28:00+00:00        -73.789942        40.646943   \n",
       "\n",
       "      dropoff_longitude  dropoff_latitude  passenger_count  trip_distance  \\\n",
       "302          -73.861490         40.768172                1           9.06   \n",
       "530          -73.714585         40.745767                2          18.68   \n",
       "1219         -73.984790         40.758760                1          12.32   \n",
       "1231         -73.983638         40.752948                1           8.63   \n",
       "1290         -74.177383         40.695083                1          15.86   \n",
       "1343         -74.007195         40.707480                1          13.17   \n",
       "1451         -73.872652         40.774357                2          10.67   \n",
       "1501         -73.872892         40.774297                1          10.15   \n",
       "1584         -73.984963         40.757590                1          10.97   \n",
       "6759         -73.974362         40.756418                2          16.84   \n",
       "\n",
       "      tolls_amount  fare_amount  total_amount  \n",
       "302           4.57         23.3         28.37  \n",
       "530           4.57         47.3         61.83  \n",
       "1219          5.50         32.5         45.00  \n",
       "1231          4.57         25.7         30.77  \n",
       "1290         10.00         49.9         69.88  \n",
       "1343          4.57         32.9         44.55  \n",
       "1451          4.57         29.7         39.77  \n",
       "1501          4.57         24.5         29.57  \n",
       "1584          4.57         28.5         33.57  \n",
       "6759          4.57         45.0         50.07  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tollrides = trips[trips['tolls_amount'] > 0]\n",
    "tollrides[tollrides['pickup_datetime'] == pd.Timestamp('2010-04-29 12:28:00')]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looking a few samples above, it should be clear that the total amount reflects fare amount, toll and tip somewhat arbitrarily -- this is because when customers pay cash, the tip is not known.  So, we'll use the sum of fare_amount + tolls_amount as what needs to be predicted.  Tips are discretionary and do not have to be included in our fare estimation tool.\n",
    "\n",
    "Let's also look at the distribution of values within the columns."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>trip_distance</th>\n",
       "      <th>tolls_amount</th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>total_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "      <td>10716.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-72.602192</td>\n",
       "      <td>40.002372</td>\n",
       "      <td>-72.594838</td>\n",
       "      <td>40.002052</td>\n",
       "      <td>1.650056</td>\n",
       "      <td>2.856395</td>\n",
       "      <td>0.226428</td>\n",
       "      <td>11.109446</td>\n",
       "      <td>13.217078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>9.982373</td>\n",
       "      <td>5.474670</td>\n",
       "      <td>10.004324</td>\n",
       "      <td>5.474648</td>\n",
       "      <td>1.283577</td>\n",
       "      <td>3.322024</td>\n",
       "      <td>1.135934</td>\n",
       "      <td>9.137710</td>\n",
       "      <td>10.953156</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.258183</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-74.260472</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.010000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.500000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992153</td>\n",
       "      <td>40.735936</td>\n",
       "      <td>-73.991566</td>\n",
       "      <td>40.734310</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.040000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>7.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.981851</td>\n",
       "      <td>40.753264</td>\n",
       "      <td>-73.980373</td>\n",
       "      <td>40.752956</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.770000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>8.500000</td>\n",
       "      <td>10.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.967400</td>\n",
       "      <td>40.767340</td>\n",
       "      <td>-73.964142</td>\n",
       "      <td>40.767510</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.160000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>12.500000</td>\n",
       "      <td>14.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>42.800000</td>\n",
       "      <td>16.000000</td>\n",
       "      <td>179.000000</td>\n",
       "      <td>179.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count      10716.000000     10716.000000       10716.000000      10716.000000   \n",
       "mean         -72.602192        40.002372         -72.594838         40.002052   \n",
       "std            9.982373         5.474670          10.004324          5.474648   \n",
       "min          -74.258183         0.000000         -74.260472          0.000000   \n",
       "25%          -73.992153        40.735936         -73.991566         40.734310   \n",
       "50%          -73.981851        40.753264         -73.980373         40.752956   \n",
       "75%          -73.967400        40.767340         -73.964142         40.767510   \n",
       "max            0.000000        41.366138           0.000000         41.366138   \n",
       "\n",
       "       passenger_count  trip_distance  tolls_amount   fare_amount  \\\n",
       "count     10716.000000   10716.000000  10716.000000  10716.000000   \n",
       "mean          1.650056       2.856395      0.226428     11.109446   \n",
       "std           1.283577       3.322024      1.135934      9.137710   \n",
       "min           0.000000       0.010000      0.000000      2.500000   \n",
       "25%           1.000000       1.040000      0.000000      6.000000   \n",
       "50%           1.000000       1.770000      0.000000      8.500000   \n",
       "75%           2.000000       3.160000      0.000000     12.500000   \n",
       "max           6.000000      42.800000     16.000000    179.000000   \n",
       "\n",
       "       total_amount  \n",
       "count  10716.000000  \n",
       "mean      13.217078  \n",
       "std       10.953156  \n",
       "min        2.500000  \n",
       "25%        7.300000  \n",
       "50%       10.000000  \n",
       "75%       14.600000  \n",
       "max      179.000000  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trips.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Hmm ... The min, max of longitude look strange.\n",
    "\n",
    "Finally, let's actually look at the start and end of a few of the trips."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/envs/py3env/lib/python3.5/site-packages/matplotlib/font_manager.py:1320: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4e92c28b38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def showrides(df, numlines):\n",
    "  lats = []\n",
    "  lons = []\n",
    "  for iter, row in df[:numlines].iterrows():\n",
    "    lons.append(row['pickup_longitude'])\n",
    "    lons.append(row['dropoff_longitude'])\n",
    "    lons.append(None)\n",
    "    lats.append(row['pickup_latitude'])\n",
    "    lats.append(row['dropoff_latitude'])\n",
    "    lats.append(None)\n",
    "\n",
    "  sns.set_style(\"darkgrid\")\n",
    "  plt.figure(figsize=(10,8))\n",
    "  plt.plot(lons, lats)\n",
    "\n",
    "showrides(trips, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/envs/py3env/lib/python3.5/site-packages/matplotlib/font_manager.py:1320: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4e92b78160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "showrides(tollrides, 10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you'd expect, rides that involve a toll are longer than the typical ride."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3> Quality control and other preprocessing </h3>\n",
    "\n",
    "We need to some clean-up of the data:\n",
    "<ol>\n",
    "<li>New York city longitudes are around -74 and latitudes are around 41.</li>\n",
    "<li>We shouldn't have zero passengers.</li>\n",
    "<li>Clean up the total_amount column to reflect only fare_amount and tolls_amount, and then remove those two columns.</li>\n",
    "<li>Before the ride starts, we'll know the pickup and dropoff locations, but not the trip distance (that depends on the route taken), so remove it from the ML dataset</li>\n",
    "<li>Discard the timestamp</li>\n",
    "</ol>\n",
    "\n",
    "We could do preprocessing in BigQuery, similar to how we removed the zero-distance rides, but just to show you another option, let's do this in Python.  In production, we'll have to carry out the same preprocessing on the real-time input data. \n",
    "\n",
    "This sort of preprocessing of input data is quite common in ML, especially if the quality-control is dynamic."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>fare_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10476.000000</td>\n",
       "      <td>10476.000000</td>\n",
       "      <td>10476.000000</td>\n",
       "      <td>10476.000000</td>\n",
       "      <td>10476.000000</td>\n",
       "      <td>10476.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-73.975206</td>\n",
       "      <td>40.751526</td>\n",
       "      <td>-73.974373</td>\n",
       "      <td>40.751199</td>\n",
       "      <td>1.653303</td>\n",
       "      <td>11.349003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.038547</td>\n",
       "      <td>0.029187</td>\n",
       "      <td>0.039086</td>\n",
       "      <td>0.033147</td>\n",
       "      <td>1.278827</td>\n",
       "      <td>9.878630</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.258183</td>\n",
       "      <td>40.452290</td>\n",
       "      <td>-74.260472</td>\n",
       "      <td>40.417750</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992336</td>\n",
       "      <td>40.737600</td>\n",
       "      <td>-73.991739</td>\n",
       "      <td>40.735904</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.982090</td>\n",
       "      <td>40.754020</td>\n",
       "      <td>-73.980780</td>\n",
       "      <td>40.753597</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>8.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.968517</td>\n",
       "      <td>40.767774</td>\n",
       "      <td>-73.965851</td>\n",
       "      <td>40.767921</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>12.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>179.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count      10476.000000     10476.000000       10476.000000      10476.000000   \n",
       "mean         -73.975206        40.751526         -73.974373         40.751199   \n",
       "std            0.038547         0.029187           0.039086          0.033147   \n",
       "min          -74.258183        40.452290         -74.260472         40.417750   \n",
       "25%          -73.992336        40.737600         -73.991739         40.735904   \n",
       "50%          -73.982090        40.754020         -73.980780         40.753597   \n",
       "75%          -73.968517        40.767774         -73.965851         40.767921   \n",
       "max          -73.137393        41.366138         -73.137393         41.366138   \n",
       "\n",
       "       passenger_count   fare_amount  \n",
       "count     10476.000000  10476.000000  \n",
       "mean          1.653303     11.349003  \n",
       "std           1.278827      9.878630  \n",
       "min           1.000000      2.500000  \n",
       "25%           1.000000      6.000000  \n",
       "50%           1.000000      8.500000  \n",
       "75%           2.000000     12.500000  \n",
       "max           6.000000    179.000000  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def preprocess(trips_in):\n",
    "  trips = trips_in.copy(deep=True)\n",
    "  trips.fare_amount = trips.fare_amount + trips.tolls_amount\n",
    "  del trips['tolls_amount']\n",
    "  del trips['total_amount']\n",
    "  del trips['trip_distance']\n",
    "  del trips['pickup_datetime']\n",
    "  qc = np.all([\\\n",
    "             trips['pickup_longitude'] > -78, \\\n",
    "             trips['pickup_longitude'] < -70, \\\n",
    "             trips['dropoff_longitude'] > -78, \\\n",
    "             trips['dropoff_longitude'] < -70, \\\n",
    "             trips['pickup_latitude'] > 37, \\\n",
    "             trips['pickup_latitude'] < 45, \\\n",
    "             trips['dropoff_latitude'] > 37, \\\n",
    "             trips['dropoff_latitude'] < 45, \\\n",
    "             trips['passenger_count'] > 0,\n",
    "            ], axis=0)\n",
    "  return trips[qc]\n",
    "\n",
    "tripsqc = preprocess(trips)\n",
    "tripsqc.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The quality control has removed about 300 rows (11400 - 11101) or about 3% of the data. This seems reasonable.\n",
    "\n",
    "Let's move on to creating the ML datasets.\n",
    "\n",
    "<h3> Create ML datasets </h3>\n",
    "\n",
    "Let's split the QCed data randomly into training, validation and test sets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "shuffled = tripsqc.sample(frac=1)\n",
    "trainsize = int(len(shuffled['fare_amount']) * 0.70)\n",
    "validsize = int(len(shuffled['fare_amount']) * 0.15)\n",
    "\n",
    "df_train = shuffled.iloc[:trainsize, :]\n",
    "df_valid = shuffled.iloc[trainsize:(trainsize+validsize), :]\n",
    "df_test = shuffled.iloc[(trainsize+validsize):, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>fare_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>7333.000000</td>\n",
       "      <td>7333.000000</td>\n",
       "      <td>7333.000000</td>\n",
       "      <td>7333.000000</td>\n",
       "      <td>7333.000000</td>\n",
       "      <td>7333.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-73.975215</td>\n",
       "      <td>40.751299</td>\n",
       "      <td>-73.973966</td>\n",
       "      <td>40.751065</td>\n",
       "      <td>1.637529</td>\n",
       "      <td>11.339366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.038581</td>\n",
       "      <td>0.029321</td>\n",
       "      <td>0.039705</td>\n",
       "      <td>0.033557</td>\n",
       "      <td>1.259257</td>\n",
       "      <td>10.022253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.258183</td>\n",
       "      <td>40.452290</td>\n",
       "      <td>-74.260472</td>\n",
       "      <td>40.417750</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992412</td>\n",
       "      <td>40.737525</td>\n",
       "      <td>-73.991582</td>\n",
       "      <td>40.735817</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.982140</td>\n",
       "      <td>40.753605</td>\n",
       "      <td>-73.980487</td>\n",
       "      <td>40.753818</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>8.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.968412</td>\n",
       "      <td>40.767632</td>\n",
       "      <td>-73.965380</td>\n",
       "      <td>40.767890</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>12.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>179.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count       7333.000000      7333.000000        7333.000000       7333.000000   \n",
       "mean         -73.975215        40.751299         -73.973966         40.751065   \n",
       "std            0.038581         0.029321           0.039705          0.033557   \n",
       "min          -74.258183        40.452290         -74.260472         40.417750   \n",
       "25%          -73.992412        40.737525         -73.991582         40.735817   \n",
       "50%          -73.982140        40.753605         -73.980487         40.753818   \n",
       "75%          -73.968412        40.767632         -73.965380         40.767890   \n",
       "max          -73.137393        41.366138         -73.137393         41.366138   \n",
       "\n",
       "       passenger_count  fare_amount  \n",
       "count      7333.000000  7333.000000  \n",
       "mean          1.637529    11.339366  \n",
       "std           1.259257    10.022253  \n",
       "min           1.000000     2.500000  \n",
       "25%           1.000000     6.000000  \n",
       "50%           1.000000     8.500000  \n",
       "75%           2.000000    12.500000  \n",
       "max           6.000000   179.000000  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>fare_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1571.000000</td>\n",
       "      <td>1571.000000</td>\n",
       "      <td>1571.000000</td>\n",
       "      <td>1571.000000</td>\n",
       "      <td>1571.000000</td>\n",
       "      <td>1571.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-73.975182</td>\n",
       "      <td>40.752200</td>\n",
       "      <td>-73.974931</td>\n",
       "      <td>40.752660</td>\n",
       "      <td>1.709102</td>\n",
       "      <td>11.221903</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.040154</td>\n",
       "      <td>0.030358</td>\n",
       "      <td>0.040859</td>\n",
       "      <td>0.032365</td>\n",
       "      <td>1.334515</td>\n",
       "      <td>9.525019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.187541</td>\n",
       "      <td>40.641319</td>\n",
       "      <td>-74.187541</td>\n",
       "      <td>40.607681</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992218</td>\n",
       "      <td>40.737437</td>\n",
       "      <td>-73.991657</td>\n",
       "      <td>40.737195</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.982212</td>\n",
       "      <td>40.755165</td>\n",
       "      <td>-73.981158</td>\n",
       "      <td>40.754833</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>8.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.969407</td>\n",
       "      <td>40.767817</td>\n",
       "      <td>-73.966673</td>\n",
       "      <td>40.768397</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>12.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>-73.137393</td>\n",
       "      <td>41.366138</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>93.300000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count       1571.000000      1571.000000        1571.000000       1571.000000   \n",
       "mean         -73.975182        40.752200         -73.974931         40.752660   \n",
       "std            0.040154         0.030358           0.040859          0.032365   \n",
       "min          -74.187541        40.641319         -74.187541         40.607681   \n",
       "25%          -73.992218        40.737437         -73.991657         40.737195   \n",
       "50%          -73.982212        40.755165         -73.981158         40.754833   \n",
       "75%          -73.969407        40.767817         -73.966673         40.768397   \n",
       "max          -73.137393        41.366138         -73.137393         41.366138   \n",
       "\n",
       "       passenger_count  fare_amount  \n",
       "count      1571.000000  1571.000000  \n",
       "mean          1.709102    11.221903  \n",
       "std           1.334515     9.525019  \n",
       "min           1.000000     2.500000  \n",
       "25%           1.000000     6.050000  \n",
       "50%           1.000000     8.500000  \n",
       "75%           2.000000    12.500000  \n",
       "max           6.000000    93.300000  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_valid.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>fare_amount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1572.000000</td>\n",
       "      <td>1572.000000</td>\n",
       "      <td>1572.000000</td>\n",
       "      <td>1572.000000</td>\n",
       "      <td>1572.000000</td>\n",
       "      <td>1572.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-73.975189</td>\n",
       "      <td>40.751911</td>\n",
       "      <td>-73.975716</td>\n",
       "      <td>40.750364</td>\n",
       "      <td>1.671120</td>\n",
       "      <td>11.520980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.036735</td>\n",
       "      <td>0.027311</td>\n",
       "      <td>0.034023</td>\n",
       "      <td>0.031951</td>\n",
       "      <td>1.311208</td>\n",
       "      <td>9.548962</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.116582</td>\n",
       "      <td>40.626968</td>\n",
       "      <td>-74.177625</td>\n",
       "      <td>40.588230</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992188</td>\n",
       "      <td>40.737901</td>\n",
       "      <td>-73.992579</td>\n",
       "      <td>40.734490</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.981693</td>\n",
       "      <td>40.754539</td>\n",
       "      <td>-73.981738</td>\n",
       "      <td>40.751667</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>8.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.968021</td>\n",
       "      <td>40.768209</td>\n",
       "      <td>-73.966591</td>\n",
       "      <td>40.767271</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>13.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>-73.330783</td>\n",
       "      <td>40.933269</td>\n",
       "      <td>-73.679133</td>\n",
       "      <td>41.001380</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>93.750000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count       1572.000000      1572.000000        1572.000000       1572.000000   \n",
       "mean         -73.975189        40.751911         -73.975716         40.750364   \n",
       "std            0.036735         0.027311           0.034023          0.031951   \n",
       "min          -74.116582        40.626968         -74.177625         40.588230   \n",
       "25%          -73.992188        40.737901         -73.992579         40.734490   \n",
       "50%          -73.981693        40.754539         -73.981738         40.751667   \n",
       "75%          -73.968021        40.768209         -73.966591         40.767271   \n",
       "max          -73.330783        40.933269         -73.679133         41.001380   \n",
       "\n",
       "       passenger_count  fare_amount  \n",
       "count      1572.000000  1572.000000  \n",
       "mean          1.671120    11.520980  \n",
       "std           1.311208     9.548962  \n",
       "min           1.000000     2.500000  \n",
       "25%           1.000000     6.100000  \n",
       "50%           1.000000     8.500000  \n",
       "75%           2.000000    13.300000  \n",
       "max           6.000000    93.750000  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's write out the three dataframes to appropriately named csv files. We can use these csv files for local training (recall that these files represent only 1/100,000 of the full dataset) until we get to point of using Dataflow and Cloud ML."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['fare_amount', 'pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count', 'key']\n",
      "['fare_amount', 'pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count', 'key']\n",
      "['fare_amount', 'pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count', 'key']\n"
     ]
    }
   ],
   "source": [
    "def to_csv(df, filename):\n",
    "  outdf = df.copy(deep=False)\n",
    "  outdf.loc[:, 'key'] = np.arange(0, len(outdf)) # rownumber as key\n",
    "  # reorder columns so that target is first column\n",
    "  cols = outdf.columns.tolist()\n",
    "  cols.remove('fare_amount')\n",
    "  cols.insert(0, 'fare_amount')\n",
    "  print (cols)  # new order of columns\n",
    "  outdf = outdf[cols]\n",
    "  outdf.to_csv(filename, header=False, index_label=False, index=False)\n",
    "\n",
    "to_csv(df_train, 'taxi-train.csv')\n",
    "to_csv(df_valid, 'taxi-valid.csv')\n",
    "to_csv(df_test, 'taxi-test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.7,-73.975992,40.788782,-73.98205,40.774995,1,0\r\n",
      "8.5,-73.983901,40.775036,-73.954449,40.778186,2,1\r\n",
      "33.83,-73.863097,40.769593,-73.983839,40.743801,2,2\r\n",
      "9.5,-73.901353,40.74601,-73.934397,40.75861,1,3\r\n",
      "4.5,-74.003145,40.731502,-74.006045,40.727177,1,4\r\n",
      "3.7,-73.94985,40.780337,-73.955718,40.77242,5,5\r\n",
      "5.7,-73.990229,40.75124,-73.983821,40.743433,1,6\r\n",
      "6.5,-73.985094,40.747624,-73.97375,40.736872,1,7\r\n",
      "13.7,-73.994257,40.735349,-73.957964,40.783252,1,8\r\n",
      "4.5,-73.991086,40.724368,-73.999306,40.730001,1,9\r\n"
     ]
    }
   ],
   "source": [
    "!head -10 taxi-valid.csv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3> Verify that datasets exist </h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 root root  85704 Jan  6 21:16 taxi-test.csv\r\n",
      "-rw-r--r-- 1 root root 403079 Jan  6 21:16 taxi-train.csv\r\n",
      "-rw-r--r-- 1 root root  85552 Jan  6 21:16 taxi-valid.csv\r\n"
     ]
    }
   ],
   "source": [
    "!ls -l *.csv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have 3 .csv files corresponding to train, valid, test.  The ratio of file-sizes correspond to our split of the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.7,-73.972392,40.749545,-73.976475,40.741733,1,0\n",
      "14.1,-74.012698,40.706355,-73.987307,40.761108,1,1\n",
      "5.3,-73.954546,40.785674,-73.944107,40.778,1,2\n",
      "10.0,-74.001565,40.724977,-74.0033,40.750607,1,3\n",
      "6.1,-73.987203,40.733514,-73.998998,40.744583,1,4\n",
      "19.0,-74.008974,40.706523,-73.967641,40.760067,2,5\n",
      "38.099999999999994,-73.870668,40.773593,-73.988242,40.750865,6,6\n",
      "9.5,-73.981777,40.758799,-73.960199,40.775827,1,7\n",
      "8.9,-73.96757,40.756034,-73.989402,40.753837,1,8\n",
      "8.9,-74.000758,40.742105,-74.011375,40.713447,1,9\n"
     ]
    }
   ],
   "source": [
    "%bash\n",
    "head taxi-train.csv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looks good! We now have our ML datasets and are ready to train ML models, validate them and evaluate them."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3> Benchmark </h3>\n",
    "\n",
    "Before we start building complex ML models, it is a good idea to come up with a very simple model and use that as a benchmark.\n",
    "\n",
    "My model is going to be to simply divide the mean fare_amount by the mean trip_distance to come up with a rate and use that to predict.  Let's compute the RMSE of such a model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Rate = $2.598941313001719/km\n",
      "Train RMSE = 7.928965961145181\n",
      "Valid RMSE = 5.658765668491484\n",
      "Test RMSE = 7.737969951128933\n"
     ]
    }
   ],
   "source": [
    "def distance_between(lat1, lon1, lat2, lon2):\n",
    "  # haversine formula to compute distance \"as the crow flies\".  Taxis can't fly of course.\n",
    "  dist = np.degrees(np.arccos(np.minimum(1,np.sin(np.radians(lat1)) * np.sin(np.radians(lat2)) + np.cos(np.radians(lat1)) * np.cos(np.radians(lat2)) * np.cos(np.radians(lon2 - lon1))))) * 60 * 1.515 * 1.609344\n",
    "  return dist\n",
    "\n",
    "def estimate_distance(df):\n",
    "  return distance_between(df['pickuplat'], df['pickuplon'], df['dropofflat'], df['dropofflon'])\n",
    "\n",
    "def compute_rmse(actual, predicted):\n",
    "  return np.sqrt(np.mean((actual-predicted)**2))\n",
    "\n",
    "def print_rmse(df, rate, name):\n",
    "  print (\"{1} RMSE = {0}\".format(compute_rmse(df['fare_amount'], rate*estimate_distance(df)), name))\n",
    "\n",
    "FEATURES = ['pickuplon','pickuplat','dropofflon','dropofflat','passengers']\n",
    "TARGET = 'fare_amount'\n",
    "columns = list([TARGET])\n",
    "columns.extend(FEATURES) # in CSV, target is the first column, after the features\n",
    "columns.append('key')\n",
    "df_train = pd.read_csv('taxi-train.csv', header=None, names=columns)\n",
    "df_valid = pd.read_csv('taxi-valid.csv', header=None, names=columns)\n",
    "df_test = pd.read_csv('taxi-test.csv', header=None, names=columns)\n",
    "rate = df_train['fare_amount'].mean() / estimate_distance(df_train).mean()\n",
    "print (\"Rate = ${0}/km\".format(rate))\n",
    "print_rmse(df_train, rate, 'Train')\n",
    "print_rmse(df_valid, rate, 'Valid') \n",
    "print_rmse(df_test, rate, 'Test')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2>Benchmark on same dataset</h2>\n",
    "\n",
    "The RMSE depends on the dataset, and for comparison, we have to evaluate on the same dataset each time. We'll use this query in later labs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Validation Set RMSE = 7.4158766166380445\n"
     ]
    }
   ],
   "source": [
    "def create_query(phase, EVERY_N):\n",
    "  \"\"\"\n",
    "  phase: 1=train 2=valid\n",
    "  \"\"\"\n",
    "  base_query = \"\"\"\n",
    "SELECT\n",
    "  (tolls_amount + fare_amount) AS fare_amount,\n",
    "  CONCAT(CAST(pickup_datetime AS STRING), CAST(pickup_longitude AS STRING), CAST(pickup_latitude AS STRING), CAST(dropoff_latitude AS STRING), CAST(dropoff_longitude AS STRING)) AS key,\n",
    "  EXTRACT(DAYOFWEEK FROM pickup_datetime)*1.0 AS dayofweek,\n",
    "  EXTRACT(HOUR FROM pickup_datetime)*1.0 AS hourofday,\n",
    "  pickup_longitude AS pickuplon,\n",
    "  pickup_latitude AS pickuplat,\n",
    "  dropoff_longitude AS dropofflon,\n",
    "  dropoff_latitude AS dropofflat,\n",
    "  passenger_count*1.0 AS passengers\n",
    "FROM\n",
    "  `nyc-tlc.yellow.trips`\n",
    "WHERE\n",
    "  trip_distance > 0\n",
    "  AND fare_amount >= 2.5\n",
    "  AND pickup_longitude > -78\n",
    "  AND pickup_longitude < -70\n",
    "  AND dropoff_longitude > -78\n",
    "  AND dropoff_longitude < -70\n",
    "  AND pickup_latitude > 37\n",
    "  AND pickup_latitude < 45\n",
    "  AND dropoff_latitude > 37\n",
    "  AND dropoff_latitude < 45\n",
    "  AND passenger_count > 0\n",
    "  \"\"\"\n",
    "\n",
    "  if EVERY_N == None:\n",
    "    if phase < 2:\n",
    "      # training\n",
    "      query = \"{0} AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))), 4) < 2\".format(base_query)\n",
    "    else:\n",
    "      query = \"{0} AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))), 4) = {1}\".format(base_query, phase)\n",
    "  else:\n",
    "      query = \"{0} AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))), {1}) = {2}\".format(base_query, EVERY_N, phase)\n",
    "    \n",
    "  return query\n",
    "\n",
    "query = create_query(2, 100000)\n",
    "df_valid = client.query(query).to_dataframe()\n",
    "print_rmse(df_valid, 2.56, 'Final Validation Set')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The simple distance-based rule gives us a RMSE of <b>$7.42</b>.  We have to beat this, of course, but you will find that simple rules of thumb like this can be surprisingly difficult to beat.\n",
    "\n",
    "Let's be ambitious, though, and make our goal to build ML models that have a RMSE of less than $6 on the test set."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright 2016 Google Inc.\n",
    "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n",
    "http://www.apache.org/licenses/LICENSE-2.0\n",
    "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
